iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 24
1
DevOps

DevOps with Proxmox系列 第 24

Day 24 - 範例動手做 - GitLab 與 Terraform Backend

  • 分享至 

  • xImage
  •  

我們昨天提到了 Terraform 狀態儲存的問題
我們今天就要看 GitLab 可以怎樣幫助我們解決這樣的問題

GitLab 參考文件

首先,我們要在 GitLab 上建立一個專案
接著,在那個專案點開 Settings > General,我們要記下 Project ID
再來,點開這個鏈接以建立一個 Access Token,等一下會需要用到
Access Token 的權限只需要 api 即可

接下來,在我們放 Terraform 程式碼的地方,我們要初始化 Terraform
利用下面的指令,記得把自己專案的資訊替換進去

terraform init \
    -backend-config="address=https://gitlab.com/api/v4/projects/<YOUR-PROJECT-ID>/terraform/state/<YOUR-STATE-NAME>" \
    -backend-config="lock_address=https://gitlab.com/api/v4/projects/<YOUR-PROJECT-ID>/terraform/state/<YOUR-STATE-NAME>/lock" \
    -backend-config="unlock_address=https://gitlab.com/api/v4/projects/<YOUR-PROJECT-ID>/terraform/state/<YOUR-STATE-NAME>/lock" \
    -backend-config="username=<YOUR-USERNAME>" \
    -backend-config="password=<YOUR-ACCESS-TOKEN>" \
    -backend-config="lock_method=POST" \
    -backend-config="unlock_method=DELETE" \
    -backend-config="retry_wait_min=5"

順利的話應該會看到這樣的訊息

terraform_init_using_gitlab_backend

接下來 Terraform 所有的操作,若有狀態變更的話,都會把狀態儲存到 GitLab 上
而別人在編輯這個專案的時候,只要把自己的 Terraform 環境也設定成使用 GitLab backend 的話,就能共用一份 tfstate 記錄,降低困擾

接下來是利用 Ansible 部署 app,明天繼續


上一篇
Day 23 - 範例動手做 - Terraform 初始化
下一篇
Day 25 - 範例動手做 - Ansible 部屬
系列文
DevOps with Proxmox30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言